package com.nf.practice.featureps;

import java.util.List;
import java.util.stream.Collectors;
/**
 * @author  Mr. Dong
 * @create  2021/11/23 11:21
 * @desc    list中相同的对象属性合并
 **/
public class RemovalData {

    public static List<DataTrans> merge(List<DataTrans> list) {
        List<DataTrans> result = list.stream()
                // 表示name为key，接着如果有重复的，那么从DataTrans对象o1与o2中筛选出一个，这里选择o1，
                // 并把name重复，需要将value与o1进行合并的o2, 赋值给o1，最后返回o1
                .collect(Collectors.toMap(DataTrans::getName, a -> a, (o1, o2)-> {
                    o1.setValue(o1.getValue() + o2.getValue());
                    return o1;
                })).values().stream().collect(Collectors.toList());
        return result;
    }
}
